home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 January: Mac OS SDK / Dev.CD Jan 98 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / PInterfaces / SocketServices.p < prev    next >
Encoding:
Text File  |  1997-08-12  |  20.4 KB  |  681 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        SocketServices.p
  3.  
  4.      Contains:    This file contains constants and data structures that
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.0.1
  8.  
  9.      Copyright:    © 1994-1997 by Apple Computer, Inc. All rights reserved.
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT SocketServices;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __SOCKETSERVICES__}
  28. {$SETC __SOCKETSERVICES__ := 1}
  29.  
  30. {$I+}
  31. {$SETC SocketServicesIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __TYPES__}
  35. {$I Types.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __MIXEDMODE__}
  38. {$I MixedMode.p}
  39. {$ENDC}
  40.  
  41.  
  42. {$PUSH}
  43. {$ALIGN MAC68K}
  44. {$LibExport+}
  45.  
  46. {
  47.   ///////////////////////////////////////////////////////////////////////////////////////
  48.       TypeDefs for the Socket Services function codes
  49. }
  50.  
  51.  
  52. TYPE
  53.     SS_BYTE                                = Byte;
  54.     SS_FLAGS8                            = Byte;
  55.     SS_IRQ                                = Byte;
  56.     SS_PWRLEVEL                            = Byte;
  57.     SS_ADAPTER                            = UInt16;
  58.     SS_BCD                                = UInt16;
  59.     SS_COUNT                            = UInt16;
  60.     SS_EDC                                = UInt16;
  61.     SS_FLAGS16                            = UInt16;
  62.     SS_PAGE                                = UInt16;
  63.     SS_PWRINDEX                            = UInt16;
  64.     SS_SIGNATURE                        = UInt16;
  65.     SS_SKTBITS                            = UInt16;
  66.     SS_SOCKET                            = UInt16;
  67.     SS_SPEED                            = UInt16;
  68.     SS_WINDOW                            = UInt16;
  69.     SS_WORD                                = UInt16;
  70.     SS_BASE                                = UInt32;
  71.     SS_FLAGS32                            = UInt32;
  72.     SS_OFFSET                            = UInt32;
  73.     SS_SIZE                                = UInt32;
  74.     SS_PTR                                = Ptr;
  75.     SS_RETCODE                            = OSErr;
  76.     SS_SCHARTBLPtr = ^SS_SCHARTBL;
  77.     SS_SCHARTBL = RECORD
  78.         sktCaps:                UInt16;                                    {     SS_FLAGS16 }
  79.         activeHigh:                UInt32;                                    {     SS_FLAGS32 }
  80.         activeLow:                UInt32;                                    {     SS_FLAGS32 }
  81.     END;
  82.  
  83.     SS_SISTRUCTPtr = ^SS_SISTRUCT;
  84.     SS_SISTRUCT = RECORD
  85.         bufferLength:            UInt16;                                    {     SS_WORD }
  86.         dataLength:                UInt16;                                    {     SS_WORD }
  87.         charTable:                SS_SCHARTBL;                            {     SS_FLAGS16 }
  88.     END;
  89.  
  90.  
  91. CONST
  92.     STR_SIZE                    = 24;
  93.  
  94. {  minimum string length }
  95.  
  96. TYPE
  97.     SS_VISTRUCTPtr = ^SS_VISTRUCT;
  98.     SS_VISTRUCT = RECORD
  99.         bufferLength:            UInt16;                                    {     SS_WORD }
  100.         dataLength:                UInt16;                                    {     SS_WORD }
  101.         szImplementor:            SInt8;                                    {     SS_WORD }
  102.         padding:                SInt8;                                    {      }
  103.     END;
  104.  
  105.     SS_ACHARTBLPtr = ^SS_ACHARTBL;
  106.     SS_ACHARTBL = RECORD
  107.         adpCaps:                UInt16;                                    {     SS_FLAGS16 }
  108.         activeHigh:                UInt32;                                    {     SS_FLAGS32 }
  109.         activeLow:                UInt32;                                    {     SS_FLAGS32 }
  110.     END;
  111.  
  112.     SS_PWRENTRYPtr = ^SS_PWRENTRY;
  113.     SS_PWRENTRY = RECORD
  114.         powerLevel:                SInt8;                                    {     SS_PWRLEVEL }
  115.         validSignals:            SInt8;                                    {     SS_FLAGS8 }
  116.     END;
  117.  
  118.     SS_AISTRUCTPtr = ^SS_AISTRUCT;
  119.     SS_AISTRUCT = RECORD
  120.         bufferLength:            UInt16;                                    {     SS_WORD }
  121.         dataLength:                UInt16;                                    {     SS_WORD }
  122.         charTable:                SS_ACHARTBL;
  123.         numPwrEntries:            UInt16;                                    {     SS_WORD }
  124.         pwrEntryPtr:            SS_PWRENTRYPtr;
  125.     END;
  126.  
  127.     SS_MEMWINTBLPtr = ^SS_MEMWINTBL;
  128.     SS_MEMWINTBL = RECORD
  129.         memWndCaps:                UInt16;                                    {     SS_FLAGS16 }
  130.         firstByte:                UInt32;                                    {     SS_BASE }
  131.         lastByte:                UInt32;                                    {     SS_BASE }
  132.         minSize:                UInt32;                                    {     SS_SIZE }
  133.         maxSize:                UInt32;                                    {     SS_SIZE }
  134.         reqGran:                UInt32;                                    {     SS_SIZE }
  135.         reqBase:                UInt32;                                    {     SS_SIZE }
  136.         reqOffset:                UInt32;                                    {     SS_SIZE }
  137.         slowest:                UInt16;                                    {     SS_SPEED }
  138.         fastest:                UInt16;                                    {     SS_SPEED }
  139.     END;
  140.  
  141.     SS_IOWINTBLPtr = ^SS_IOWINTBL;
  142.     SS_IOWINTBL = RECORD
  143.         ioWndCaps:                UInt16;                                    {     SS_FLAGS16 }
  144.         firstByte:                UInt32;                                    {     SS_BASE }
  145.         lastByte:                UInt32;                                    {     SS_BASE }
  146.         minSize:                UInt32;                                    {     SS_SIZE }
  147.         maxSize:                UInt32;                                    {     SS_SIZE }
  148.         reqGran:                UInt32;                                    {     SS_SIZE }
  149.         addrLines:                UInt16;                                    {     SS_COUNT }
  150.         eisaSlot:                SInt8;                                    {     SS_FLAGS8 }
  151.         padding:                SInt8;                                    {      }
  152.     END;
  153.  
  154.     SS_WISTRUCTPtr = ^SS_WISTRUCT;
  155.     SS_WISTRUCT = RECORD
  156.         bufferLength:            UInt16;                                    {     SS_WORD }
  157.         dataLength:                UInt16;                                    {     SS_WORD }
  158.         numTblEntries:            UInt16;                                    {     SS_WORD }
  159.         memWinTbl:                SS_MEMWINTBL;
  160.         ioWinTbl:                SS_IOWINTBL;
  161.     END;
  162.  
  163.  
  164. {————————————————————————————————————————————————————————————————————————
  165.     function selectors passed to Socket Service entry point
  166. ————————————————————————————————————————————————————————————————————————}
  167.  
  168. CONST
  169.     fnSSGetAdapterCount            = $80;
  170.     fnSSUnsupported81            = $81;
  171.     fnSSUnsupported82            = $82;
  172.     fnSSGetSSInfo                = $83;
  173.     fnSSInquireAdapter            = $84;
  174.     fnSSGetAdapter                = $85;
  175.     fnSSSetAdapter                = $86;
  176.     fnSSInquireWindow            = $87;
  177.     fnSSGetWindow                = $88;
  178.     fnSSSetWindow                = $89;
  179.     fnSSGetPage                    = $8A;
  180.     fnSSSetPage                    = $8B;
  181.     fnSSInquireSocket            = $8C;
  182.     fnSSGetSocket                = $8D;
  183.     fnSSSetSocket                = $8E;
  184.     fnSSGetStatus                = $8F;
  185.     fnSSResetSocket                = $90;
  186.     fnSSUnsupported91            = $91;
  187.     fnSSUnsupported92            = $92;
  188.     fnSSUnsupported93            = $93;
  189.     fnSSUnsupported94            = $94;
  190.     fnSSInquireEDC                = $95;
  191.     fnSSGetEDC                    = $96;
  192.     fnSSSetEDC                    = $97;
  193.     fnSSStartEDC                = $98;
  194.     fnSSPauseEDC                = $99;
  195.     fnSSResumeEDC                = $9A;
  196.     fnSSStopEDC                    = $9B;
  197.     fnSSReadEDC                    = $9C;
  198.     fnSSGetVendorInfo            = $9D;
  199.     fnSSAcknowledgeInterrupt    = $9E;
  200.     fnSSGetSetPriorHandler        = $9F;
  201.     fnSSGetSetSSAddr            = $A0;
  202.     fnSSGetAccessOffsets        = $A1;
  203.     fnSSUnsupportedA2            = $A2;
  204.     fnSSUnsupportedA3            = $A3;
  205.     fnSSUnsupportedA4            = $A4;
  206.     fnSSUnsupportedA5            = $A5;
  207.     fnSSUnsupportedA6            = $A6;
  208.     fnSSUnsupportedA7            = $A7;
  209.     fnSSUnsupportedA8            = $A8;
  210.     fnSSUnsupportedA9            = $A9;
  211.     fnSSUnsupportedAA            = $AA;
  212.     fnSSUnsupportedAB            = $AB;
  213.     fnSSUnsupportedAC            = $AC;
  214.     fnSSUnsupportedAD            = $AD;
  215.     fnSSVendorSpecific            = $AE;
  216.  
  217. {     SSVendorSpecificPB.function values }
  218.  
  219.     fnVSReserved                = $00;
  220.     fnVSGetSocketLocationIcon    = $01;
  221.     fnVSGetSocketLocationText    = $02;
  222.     fnVSDoSocketLocalization    = $03;
  223.     fnVSAppleSocketCapabilities    = $04;
  224.     fnVSSleepWakeNotification    = $05;
  225.  
  226.  
  227. {————————————————————————————————————————————————————————————————————————
  228.     defines for the Socket Services function codes
  229. ————————————————————————————————————————————————————————————————————————}
  230.     AC_IND                        = 1;                            {  adapter characteristics }
  231.     AC_PWR                        = 2;
  232.     AC_DBW                        = 4;
  233.  
  234.     AS_POWERDOWN                = 1;
  235.     AS_MAINTAIN                    = 2;
  236.  
  237.     EC_UNI                        = 1;
  238.     EC_BI                        = 2;
  239.     EC_REGISTER                    = 4;
  240.     EC_MEMORY                    = 8;
  241.     EC_PAUSABLE                    = 16;
  242.     EC_WRITE                    = 16;
  243.  
  244.     ET_CHECK8                    = 1;
  245.     ET_SDLC16                    = 2;
  246.  
  247.     IF_MEMORY                    = 1;
  248.     IF_IO                        = 2;
  249.  
  250.     IRQ_HIGH                    = 64;
  251.     IRQ_ENABLE                    = 128;
  252.  
  253.     IRQ_MEMORY                    = 4;
  254.     IRQ_IO                        = 4;
  255.  
  256.     PS_ATTRIBUTE                = $01;
  257.     PS_ENABLED                    = $02;
  258.     PS_WP                        = $04;
  259.  
  260.     PWR_VCC                        = 128;                            {  Power pins in PwrEntry elements }
  261.     PWR_VPP1                    = 64;
  262.     PWR_VPP2                    = 32;
  263.  
  264.     SBM_WP                        = 1;
  265.     SBM_LOCKED                    = 2;
  266.     SBM_EJECT                    = 4;
  267.     SBM_INSERT                    = 8;
  268.     SBM_BVD1                    = 16;
  269.     SBM_BVD2                    = 32;
  270.     SBM_RDYBSY                    = 64;
  271.     SBM_CD                        = 128;
  272.  
  273.     SBM_LOCK                    = 16;
  274.     SBM_BATT                    = 32;
  275.     SBM_BUSY                    = 64;
  276.     SBM_XIP                        = 128;
  277.  
  278. { Vendor Specific Apple Socket Capabilities }
  279.     SBM_SLEEP_PWR                = 1;
  280.  
  281.     WC_COMMON                    = 1;
  282.     WC_IO                        = 2;
  283.     WC_ATTRIBUTE                = 4;
  284.     WC_TYPE_MASK                = 7;
  285.     WC_WAIT                        = 128;
  286.  
  287.     WC_BASE                        = 1;
  288.     WC_SIZE                        = 2;
  289.     WC_WENABLE                    = 4;
  290.     WC_8BIT                        = 8;
  291.     WC_16BIT                    = 16;
  292.     WC_BALIGN                    = 32;
  293.     WC_POW2                        = 64;
  294.     WC_CALIGN                    = 128;
  295.     WC_PAVAIL                    = 256;
  296.     WC_PSHARED                    = 512;
  297.     WC_PENABLE                    = 1024;
  298.     WC_WP                        = 2048;
  299.  
  300.     WC_INPACK                    = 128;
  301.     WC_EISA                        = 256;
  302.     WC_CENABLE                    = 512;
  303.  
  304.     WS_IO                        = 1;
  305.     WS_ENABLED                    = 2;
  306.     WS_16BIT                    = 4;
  307.  
  308.     WS_PAGED                    = 8;
  309.     WS_EISA                        = 16;
  310.     WS_CENABLE                    = 32;
  311.     WS_SWAP_LITTLE_TO_BIG_ENDIAN = 64;
  312.  
  313.     SS_SIG_VALUE                = $5353;                        {  'SS' }
  314.  
  315.     SS_CMPL_1_00                = $0100;                        {  compliant with rev 1.0 of SS standard }
  316.     SS_CMPL_1_01                = $0101;                        {  compliant with rev 1.01 of SS standard }
  317.     SS_CMPL_2_00                = $0200;                        {  compliant with rev 2.0 of SS standard }
  318.     SS_CMPL_2_10                = $0210;                        {  compliant with rev 2.1 of SS standard }
  319.  
  320. {————————————————————————————————————————————————————————————————————————
  321.     Universal ProcPtr for Socket Service entry point
  322. ————————————————————————————————————————————————————————————————————————}
  323.  
  324. TYPE
  325.     PCCardSSEntryProcPtr = ProcPtr;  { FUNCTION PCCardSSEntry(fnCode: UInt16; callPB: Ptr; dataPtr: Ptr): INTEGER; }
  326.  
  327.     PCCardSSEntryUPP = UniversalProcPtr;
  328.  
  329. CONST
  330.     uppPCCardSSEntryProcInfo = $00000FA0;
  331.  
  332. FUNCTION NewPCCardSSEntryProc(userRoutine: PCCardSSEntryProcPtr): PCCardSSEntryUPP;
  333.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  334.     INLINE $2E9F;
  335.     {$ENDC}
  336.  
  337. FUNCTION CallPCCardSSEntryProc(fnCode: UInt16; callPB: Ptr; dataPtr: Ptr; userRoutine: PCCardSSEntryUPP): INTEGER;
  338.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  339.     INLINE $205F, $4E90;
  340.     {$ENDC}
  341. {————————————————————————————————————————————————————————————————————————
  342.     Card Services calls used by a Socket Service
  343. ————————————————————————————————————————————————————————————————————————}
  344.  
  345. TYPE
  346.     CSEventEntryPBPtr = ^CSEventEntryPB;
  347.     CSEventEntryPB = RECORD
  348.         ssHandlerID:            UInt32;
  349.         adapter:                UInt16;
  350.         socket:                    UInt16;
  351.         message:                UInt16;
  352.         intrpBits:                SInt8;
  353.         padding:                SInt8;
  354.     END;
  355.  
  356.     PCCardCSEntryProcPtr = ProcPtr;  { PROCEDURE PCCardCSEntry(VAR pb: CSEventEntryPB); }
  357.  
  358.     PCCardCSEntryUPP = UniversalProcPtr;
  359.  
  360. CONST
  361.     uppPCCardCSEntryProcInfo = $000000C0;
  362.  
  363. FUNCTION NewPCCardCSEntryProc(userRoutine: PCCardCSEntryProcPtr): PCCardCSEntryUPP;
  364.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  365.     INLINE $2E9F;
  366.     {$ENDC}
  367.  
  368. PROCEDURE CallPCCardCSEntryProc(VAR pb: CSEventEntryPB; userRoutine: PCCardCSEntryUPP);
  369.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  370.     INLINE $205F, $4E90;
  371.     {$ENDC}
  372. { ------------        AddSocketServices        ------------                             }
  373.  
  374.  
  375. TYPE
  376.     AddSocketServicesPBPtr = ^AddSocketServicesPB;
  377.     AddSocketServicesPB = RECORD
  378.         ssEntry:                PCCardSSEntryUPP;                        {  -> given to CS for its use }
  379.         csEntry:                PCCardCSEntryUPP;                        {  <- taken from CS so we know where to enter }
  380.         dataPtr:                UInt32;
  381.         attributes:                UInt32;
  382.         numAdapters:            UInt16;
  383.         numSockets:                UInt16;
  384.     END;
  385.  
  386. { ------------         ReplaceSocketServices    ------------                             }
  387.  
  388.     ReplaceSocketServicesPBPtr = ^ReplaceSocketServicesPB;
  389.     ReplaceSocketServicesPB = RECORD
  390.         ssEntry:                PCCardSSEntryUPP;
  391.         oldSSEntry:                PCCardSSEntryUPP;
  392.         dataPtr:                UInt32;
  393.         socket:                    UInt16;
  394.         numSockets:                UInt16;
  395.         attributes:                UInt16;
  396.     END;
  397.  
  398. FUNCTION CSAddSocketServices(VAR pb: AddSocketServicesPB): OSErr;
  399.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  400.     INLINE $7050, $AAF0;
  401.     {$ENDC}
  402. FUNCTION CSReplaceSocketServices(VAR pb: ReplaceSocketServicesPB): OSErr;
  403.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  404.     INLINE $7051, $AAF0;
  405.     {$ENDC}
  406.  
  407.  
  408. {————————————————————————————————————————————————————————————————————————
  409.     parameter blocks for each Socket Service function
  410. ————————————————————————————————————————————————————————————————————————}
  411.  
  412. TYPE
  413.     SSAcknowledgeInterruptPBPtr = ^SSAcknowledgeInterruptPB;
  414.     SSAcknowledgeInterruptPB = RECORD
  415.         adapter:                UInt16;                                    {     SS_ADAPTER }
  416.         sockets:                UInt16;                                    {     SS_SKTBITS }
  417.     END;
  418.  
  419.     SSGetAccessOffsetsPBPtr = ^SSGetAccessOffsetsPB;
  420.     SSGetAccessOffsetsPB = RECORD
  421.         adapter:                UInt16;                                    {     SS_ADAPTER }
  422.         mode:                    SInt8;                                    {     SS_BYTE }
  423.         reserved:                SInt8;                                    {     padding }
  424.         count:                    UInt16;                                    {     SS_COUNT }
  425.         buffer:                    Ptr;                                    {     SS_PTR }
  426.         numAvail:                UInt16;                                    {     SS_COUNT }
  427.     END;
  428.  
  429.     SSGetAdapterCountPBPtr = ^SSGetAdapterCountPB;
  430.     SSGetAdapterCountPB = RECORD
  431.         totalAdapters:            UInt16;                                    {     SS_COUNT }
  432.         sig:                    UInt16;                                    {     SS_SIGNATURE }
  433.     END;
  434.  
  435.     SSGetSetAdapterPBPtr = ^SSGetSetAdapterPB;
  436.     SSGetSetAdapterPB = RECORD
  437.         adapter:                UInt16;                                    {     SS_ADAPTER }
  438.         state:                    SInt8;                                    {     SS_FLAGS8 }
  439.         irqStatus:                SInt8;                                    {     SS_IRQ }
  440.     END;
  441.  
  442.     SSGetSetEDCPBPtr = ^SSGetSetEDCPB;
  443.     SSGetSetEDCPB = RECORD
  444.         adapter:                UInt16;                                    {     SS_ADAPTER }
  445.         edc:                    UInt16;                                    {     SS_EDC }
  446.         socket:                    UInt16;                                    {     SS_SOCKET }
  447.         state:                    SInt8;                                    {     SS_FLAGS8 }
  448.         edcType:                SInt8;                                    {     SS_FLAGS8 }
  449.     END;
  450.  
  451.     SSGetSetPagePBPtr = ^SSGetSetPagePB;
  452.     SSGetSetPagePB = RECORD
  453.         adapter:                UInt16;                                    {     SS_ADAPTER }
  454.         window:                    UInt16;                                    {     SS_WINDOW }
  455.         page:                    UInt16;                                    {     SS_PAGE }
  456.         state:                    SInt8;                                    {     SS_FLAGS8 }
  457.         reserved:                SInt8;                                    {     padding }
  458.         offset:                    UInt32;                                    {     SS_OFFSET }
  459.     END;
  460.  
  461.     SSGetSetPriorHandlerPBPtr = ^SSGetSetPriorHandlerPB;
  462.     SSGetSetPriorHandlerPB = RECORD
  463.         adapter:                UInt16;                                    {     SS_ADAPTER }
  464.         mode:                    SInt8;                                    {     SS_FLAGS8 }
  465.         reserved:                SInt8;                                    {     padding }
  466.         handler:                Ptr;                                    {     SS_PTR }
  467.     END;
  468.  
  469.     SSGetSetSocketPBPtr = ^SSGetSetSocketPB;
  470.     SSGetSetSocketPB = RECORD
  471.         adapter:                UInt16;                                    {     SS_ADAPTER }
  472.         socket:                    UInt16;                                    {     SS_SOCKET }
  473.         vccIndex:                UInt16;                                    {     SS_PWRINDEX }
  474.         vpp1Index:                UInt16;                                    {     SS_PWRINDEX }
  475.         vpp2Index:                UInt16;                                    {     SS_PWRINDEX }
  476.         scIntMask:                SInt8;                                    {     SS_FLAGS8 }
  477.         state:                    SInt8;                                    {     SS_FLAGS8 }
  478.         ctlInd:                    SInt8;                                    {     SS_FLAGS8 }
  479.         ireqRouting:            SInt8;                                    {     SS_IRQ }
  480.         ifType:                    SInt8;                                    {     SS_FLAGS8 }
  481.         padding:                SInt8;                                    {      }
  482.     END;
  483.  
  484.     SSGetSetSSAddrPBPtr = ^SSGetSetSSAddrPB;
  485.     SSGetSetSSAddrPB = RECORD
  486.         adapter:                UInt16;                                    {     SS_ADAPTER }
  487.         mode:                    SInt8;                                    {     SS_BYTE }
  488.         subfunc:                SInt8;                                    {     SS_BYTE }
  489.         numAddData:                UInt16;                                    {     SS_COUNT }
  490.         buffer:                    Ptr;                                    {     SS_PTR }
  491.     END;
  492.  
  493.     SSGetSetWindowPBPtr = ^SSGetSetWindowPB;
  494.     SSGetSetWindowPB = RECORD
  495.         adapter:                UInt16;                                    {     SS_ADAPTER }
  496.         window:                    UInt16;                                    {     SS_WINDOW }
  497.         socket:                    UInt16;                                    {     SS_SOCKET }
  498.         size:                    UInt32;                                    {     SS_SIZE }
  499.         state:                    SInt8;                                    {     SS_FLAGS8 }
  500.         reserved:                SInt8;                                    {     padding }
  501.         speed:                    UInt16;                                    {     SS_SPEED }
  502.         base:                    UInt32;                                    {     SS_BASE }
  503.     END;
  504.  
  505.     SSGetSSInfoPBPtr = ^SSGetSSInfoPB;
  506.     SSGetSSInfoPB = RECORD
  507.         adapter:                UInt16;                                    {     SS_ADAPTER }
  508.         compliance:                UInt16;                                    {     SS_BCD }
  509.         numAdapters:            UInt16;                                    {     SS_COUNT }
  510.         firstAdapter:            UInt16;                                    {     SS_ADAPTER }
  511.     END;
  512.  
  513.     SSGetStatusPBPtr = ^SSGetStatusPB;
  514.     SSGetStatusPB = RECORD
  515.         adapter:                UInt16;                                    {     SS_ADAPTER }
  516.         socket:                    UInt16;                                    {     SS_SOCKET }
  517.         cardState:                SInt8;                                    {     SS_FLAGS8 }
  518.         socketState:            SInt8;                                    {     SS_FLAGS8 }
  519.         ctlInd:                    SInt8;                                    {     SS_FLAGS8 }
  520.         ireqRouting:            SInt8;                                    {     SS_IRQ }
  521.         ifType:                    SInt8;                                    {     SS_FLAGS8 }
  522.         padding:                SInt8;                                    {      }
  523.     END;
  524.  
  525.     SSGetVendorInfoPBPtr = ^SSGetVendorInfoPB;
  526.     SSGetVendorInfoPB = RECORD
  527.         adapter:                UInt16;                                    {     SS_ADAPTER }
  528.         vendorInfoType:            SInt8;                                    {     SS_BYTE }
  529.         reserved:                SInt8;                                    {     padding }
  530.         buffer:                    Ptr;                                    {     SS_PTR }
  531.         release:                UInt16;                                    {     SS_BCD }
  532.     END;
  533.  
  534.     SSInquireAdapterPBPtr = ^SSInquireAdapterPB;
  535.     SSInquireAdapterPB = RECORD
  536.         adapter:                UInt16;                                    {     SS_ADAPTER }
  537.         buffer:                    Ptr;                                    {     SS_PTR }
  538.         numSockets:                UInt16;                                    {     SS_COUNT }
  539.         numWindows:                UInt16;                                    {     SS_COUNT }
  540.         numEDCs:                UInt16;                                    {     SS_COUNT }
  541.     END;
  542.  
  543.     SSInquireEDCPBPtr = ^SSInquireEDCPB;
  544.     SSInquireEDCPB = RECORD
  545.         adapter:                UInt16;                                    {     SS_ADAPTER }
  546.         edc:                    UInt16;                                    {     SS_EDC }
  547.         sockets:                UInt16;                                    {     SS_SKTBITS }
  548.         caps:                    SInt8;                                    {     SS_FLAGS8 }
  549.         types:                    SInt8;                                    {     SS_FLAGS8 }
  550.     END;
  551.  
  552.     SSInquireSocketPBPtr = ^SSInquireSocketPB;
  553.     SSInquireSocketPB = RECORD
  554.         adapter:                UInt16;                                    {     SS_ADAPTER }
  555.         socket:                    UInt16;                                    {     SS_SOCKET }
  556.         buffer:                    Ptr;                                    {     SS_PTR }
  557.         scIntCaps:                SInt8;                                    {     SS_FLAGS8 }
  558.         scRptCaps:                SInt8;                                    {     SS_FLAGS8 }
  559.         ctlIndCaps:                SInt8;                                    {     SS_FLAGS8 }
  560.         padding:                SInt8;                                    {      }
  561.     END;
  562.  
  563.     SSInquireWindowPBPtr = ^SSInquireWindowPB;
  564.     SSInquireWindowPB = RECORD
  565.         adapter:                UInt16;                                    {     SS_ADAPTER }
  566.         window:                    UInt16;                                    {     SS_WINDOW }
  567.         buffer:                    Ptr;                                    {     SS_PTR }
  568.         wndCaps:                SInt8;                                    {     SS_FLAGS8 }
  569.         reserved:                SInt8;                                    {     padding }
  570.         sockets:                UInt16;                                    {     SS_SKTBITS }
  571.     END;
  572.  
  573.     SSPauseEDCPBPtr = ^SSPauseEDCPB;
  574.     SSPauseEDCPB = RECORD
  575.         adapter:                UInt16;                                    {     SS_ADAPTER }
  576.         edc:                    UInt16;                                    {     SS_EDC }
  577.     END;
  578.  
  579.     SSReadEDCPBPtr = ^SSReadEDCPB;
  580.     SSReadEDCPB = RECORD
  581.         adapter:                UInt16;                                    {     SS_ADAPTER }
  582.         edc:                    UInt16;                                    {     SS_EDC }
  583.         value:                    UInt16;                                    {     SS_WORD }
  584.     END;
  585.  
  586.     SSResetSocketPBPtr = ^SSResetSocketPB;
  587.     SSResetSocketPB = RECORD
  588.         adapter:                UInt16;                                    {     SS_ADAPTER }
  589.         socket:                    UInt16;                                    {     SS_SOCKET }
  590.     END;
  591.  
  592.     SSResumeEDCPBPtr = ^SSResumeEDCPB;
  593.     SSResumeEDCPB = RECORD
  594.         adapter:                UInt16;                                    {     SS_ADAPTER }
  595.         edc:                    UInt16;                                    {     SS_EDC }
  596.     END;
  597.  
  598.     SSStartEDCPBPtr = ^SSStartEDCPB;
  599.     SSStartEDCPB = RECORD
  600.         adapter:                UInt16;                                    {     SS_ADAPTER }
  601.         edc:                    UInt16;                                    {     SS_EDC }
  602.     END;
  603.  
  604.     SSStopEDCPBPtr = ^SSStopEDCPB;
  605.     SSStopEDCPB = RECORD
  606.         adapter:                UInt16;                                    {     SS_ADAPTER }
  607.         edc:                    UInt16;                                    {     SS_EDC }
  608.     END;
  609.  
  610.     SSVendorSpecificPBPtr = ^SSVendorSpecificPB;
  611.     SSVendorSpecificPB = RECORD
  612.         vsFunction:                UInt16;                                    {     SS_WORD }
  613.         adapter:                UInt16;                                    {     SS_ADAPTER }
  614.         socket:                    UInt16;                                    {     SS_SOCKET }
  615.         bufferSize:                UInt16;                                    {     SS_WORD }
  616.         buffer:                    Ptr;                                    {     SS_PTR }
  617.         attributes:                UInt32;                                    {     SS_LONG }
  618.     END;
  619.  
  620. {    ‘attributes’ constants }
  621.  
  622. CONST
  623.     kSSGoingToSleep                = $00000001;
  624.     kSSWakingFromSleep            = $00000002;
  625.  
  626. {————————————————————————————————————————————————————————————————————————
  627.     Non-specific Socket Services Functions
  628. ————————————————————————————————————————————————————————————————————————}
  629. FUNCTION SSGetAdapterCount(VAR pb: SSGetAdapterCountPB; dataPtr: Ptr): SS_RETCODE;
  630. {————————————————————————————————————————————————————————————————————————
  631.     Adapter Functions
  632. ————————————————————————————————————————————————————————————————————————}
  633. FUNCTION SSAcknowledgeInterrupt(VAR pb: SSAcknowledgeInterruptPB; dataPtr: Ptr): SS_RETCODE;
  634. FUNCTION SSGetSetPriorHandler(VAR pb: SSGetSetPriorHandlerPB; dataPtr: Ptr): SS_RETCODE;
  635. FUNCTION SSGetSetSSAddr(VAR pb: SSGetSetSSAddrPB; dataPtr: Ptr): SS_RETCODE;
  636. FUNCTION SSGetAccessOffsets(VAR pb: SSGetAccessOffsetsPB; dataPtr: Ptr): SS_RETCODE;
  637. FUNCTION SSGetAdapter(VAR pb: SSGetSetAdapterPB; dataPtr: Ptr): SS_RETCODE;
  638. FUNCTION SSGetSSInfo(VAR pb: SSGetSSInfoPB; dataPtr: Ptr): SS_RETCODE;
  639. FUNCTION SSGetVendorInfo(VAR pb: SSGetVendorInfoPB; dataPtr: Ptr): SS_RETCODE;
  640. FUNCTION SSInquireAdapter(VAR pb: SSInquireAdapterPB; dataPtr: Ptr): SS_RETCODE;
  641. FUNCTION SSSetAdapter(VAR pb: SSGetSetAdapterPB; dataPtr: Ptr): SS_RETCODE;
  642. FUNCTION SSVendorSpecific(VAR pb: SSVendorSpecificPB; dataPtr: Ptr): SS_RETCODE;
  643. {————————————————————————————————————————————————————————————————————————
  644.     Socket Functions
  645. ————————————————————————————————————————————————————————————————————————}
  646. FUNCTION SSGetSocket(VAR pb: SSGetSetSocketPB; dataPtr: Ptr): SS_RETCODE;
  647. FUNCTION SSGetStatus(VAR pb: SSGetStatusPB; dataPtr: Ptr): SS_RETCODE;
  648. FUNCTION SSInquireSocket(VAR pb: SSInquireSocketPB; dataPtr: Ptr): SS_RETCODE;
  649. FUNCTION SSResetSocket(VAR pb: SSResetSocketPB; dataPtr: Ptr): SS_RETCODE;
  650. FUNCTION SSSetSocket(VAR pb: SSGetSetSocketPB; dataPtr: Ptr): SS_RETCODE;
  651. {————————————————————————————————————————————————————————————————————————
  652.     Window Functions
  653. ————————————————————————————————————————————————————————————————————————}
  654. FUNCTION SSGetPage(VAR pb: SSGetSetPagePB; dataPtr: Ptr): SS_RETCODE;
  655. FUNCTION SSGetWindow(VAR pb: SSGetSetWindowPB; dataPtr: Ptr): SS_RETCODE;
  656. FUNCTION SSInquireWindow(VAR pb: SSInquireWindowPB; dataPtr: Ptr): SS_RETCODE;
  657. FUNCTION SSSetPage(VAR pb: SSGetSetPagePB; dataPtr: Ptr): SS_RETCODE;
  658. FUNCTION SSSetWindow(VAR pb: SSGetSetWindowPB; dataPtr: Ptr): SS_RETCODE;
  659. {————————————————————————————————————————————————————————————————————————
  660.     Error Detection Functions
  661. ————————————————————————————————————————————————————————————————————————}
  662. FUNCTION SSGetEDC(VAR pb: SSGetSetEDCPB; dataPtr: Ptr): SS_RETCODE;
  663. FUNCTION SSInquireEDC(VAR pb: SSInquireEDCPB; dataPtr: Ptr): SS_RETCODE;
  664. FUNCTION SSPauseEDC(VAR pb: SSPauseEDCPB; dataPtr: Ptr): SS_RETCODE;
  665. FUNCTION SSReadEDC(VAR pb: SSReadEDCPB; dataPtr: Ptr): SS_RETCODE;
  666. FUNCTION SSResumeEDC(VAR pb: SSResumeEDCPB; dataPtr: Ptr): SS_RETCODE;
  667. FUNCTION SSSetEDC(VAR pb: SSGetSetEDCPB; dataPtr: Ptr): SS_RETCODE;
  668. FUNCTION SSStartEDC(VAR pb: SSStartEDCPB; dataPtr: Ptr): SS_RETCODE;
  669. FUNCTION SSStopEDC(VAR pb: SSStopEDCPB; dataPtr: Ptr): SS_RETCODE;
  670.  
  671. {$ALIGN RESET}
  672. {$POP}
  673.  
  674. {$SETC UsingIncludes := SocketServicesIncludes}
  675.  
  676. {$ENDC} {__SOCKETSERVICES__}
  677.  
  678. {$IFC NOT UsingIncludes}
  679.  END.
  680. {$ENDC}
  681.